Navigational user interface for interactive television

ABSTRACT

The present invention is a navigational user interface for interactive television and, more specifically, for purchasing food products via the navigational user interface and a television. The invention uses an intuitive interactive interface for navigating through service options preferably offered by a cable television service. Services offered such as video on demand, purchasing delivery foods, restaurant selection, banking and community events is all navigated using the present invention.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] This application is a continuation of application Ser. No. 09/195,167 entitled “Navigational User Interface for Interactive Television”, filed Nov. 19, 1998 in the names of Wilcox et al., commonly assigned with the present application, the teachings of which are hereby incorporated by reference.

FIELD OF THE INVENTION

[0002] This invention relates generally to broadband communications systems, such as cable television networks, and more specifically to broadband communications equipment including interactive and navigational tools for purchasing food items via a television screen and a client terminal.

BACKGROUND OF THE INVENTION

[0003] Over the past twenty years, computers and telecommunications have radically improved. Hardware costs continue to decline while functionality and performance has multiplied. Cable television providers and the telecommunications industry have taken advantage of computer and communication advancements by providing an ever-increasing array of services to their customers. Primarily, recent advancements in technology have enabled the cable service industry to increase channel capacity and provide some degree of interactive television service. This advancement is due in large part by the industry combining the processing power of a computer in the form of a cable box and cable's large capacity to carry information. Such cable boxes have successfully been used by the industry to provide both a greater selection of channels and some degree of interactivity.

[0004] Among such boxes are advanced analog cable boxes. Unlike older analog cable boxes, which simply tuned television channels, advanced boxes are capable of overlaying the current time and channel number on top of a television program being viewed. Advanced analog cable boxes also provide an on-screen interface for examining a list of television programs being broadcast at the current time or some time in the near future. The on-screen interface is referred to as an “Interactive Program Guide” (IPG). Additionally, some advanced analog cable boxes enable the ordering of pay-per-view movies using only the cable box and its remote controller.

[0005] Digital cable boxes are personal computing devices designed to connect to a television set. Digital cable boxes utilize the high quality of digitized audio and video television signals to access a large number of broadcast television channels. They also provide an IPG and allow a cable subscriber to order a pay-per-view movie directly using the cable box and its remote controller. Digital broadcast satellite systems also utilize digital video technology to provide hundreds of channels to a subscriber via a relatively small (eighteen-inch) satellite dish. These systems typically include an IPG.

[0006] Internet and web access boxes also connect to a television set. Web access boxes enable the television owner to attach the device to the television, and through the device's modem, to a service provider to access the Internet and the World Wide Web services. The television then serves as a display monitor for viewing various web sites.

[0007] All of these devices, with varying levels of sophistication, have memory, a central processing unit (CPU) and video graphics capabilities similar to those of a personal computer. That is, while a personal computer can execute a computer program generating a display to a computer monitor, any of these devices can run a computer program that generates a display to a television, often allowing a consumer to interact with the program via, for example, a remote controller. An example of a computer program running on an advanced analog or digital cable box would be one that displays a list of television programs currently being broadcast and allows the consumer to scroll through the listing.

[0008] All of these devices use their memory, CPU, and video-graphics capabilities to provide on-screen television interfaces to the consumer that the consumer can use to manipulate the manner in which the device is functioning. Typically, each device is designed and built independently by the device's manufacturer, of which there are hundreds, each of whom operates independently. The result of this independent product development is that each device has its own unique on-screen television interface that the consumer must learn to operate. Additionally, the on-screen interfaces themselves are often non-intuitive, clumsy, or difficult to operate.

[0009] A well-known example of a non-intuitive, inconsistent on-screen interface is the interface for setting the time on a VCR. Many consumers never discover their particular VCR-manufacturer's preferred method for setting the time, and if they do determine how to operate the interface, it is often difficult and frustrating to repeatedly use the interface. In addition, if the consumer uses a different VCR, typically the method for setting the time is significantly different than in the previous VCR. The present invention overcomes such interface problems by providing a consistent, intuitive interface for accessing, setting, and ordering information and services on a television.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a functional block diagram illustrating the preferred network including a network provider data center and coupled client terminals that are suitable for executing the present invention.

[0011]FIG. 2 is a functional block diagram illustrating the major components of the client terminal on which the present invention may run.

[0012]FIG. 3 is an artist's rendering of one possible configuration of a viewer input device, in this case, an infrared remote control for interacting with the client terminal.

[0013]FIG. 4 is an artist's rendering of another possible configuration of a viewer input device, in this case, an infrared remote control for interacting with the client terminal.

[0014]FIG. 5 illustrates, in wire frame format, three of the basic interface components of the present invention, which are the screen, category item, and menu item.

[0015]FIG. 6 illustrates, in wire frame format, the same three basic interface components illustrated in FIG. 5, and in this illustration, the category item and menu item components are arranged in a different fashion on the screen.

[0016]FIG. 7 illustrates, in wire frame format, both the menu item and category item components with the category item being in the same configuration as they were in FIG. 6 and the menu item in a somewhat different configuration.

[0017]FIG. 8 illustrates both the menu item and category item components, with the category items represented as both image-based icons and textual strings and the menu item represented as textual strings only.

[0018]FIG. 9 illustrates both the menu item and category item components, with the category items represented as image-based icons only and the menu items represented as textual strings only.

[0019]FIG. 10 illustrates both the menu item and category item components, with the category items represented as both image-based icons and textual strings and the menu items represented as both image-based icons and textual strings.

[0020]FIG. 11 illustrates both the menu item and category item components, with the menu items represented as textual strings, and having additional related mages (“drawables”) that show in another location on the display when the menu item with each image is associated comes into focus.

[0021]FIG. 12 illustrates the first frame in a scroll of the menu item originally presented in FIG. 11.

[0022]FIG. 13 illustrates the second frame in the scroll presented in FIG. 12.

[0023]FIG. 14 illustrates the third frame in the scroll, the first frame of which is presented in FIG. 12.

[0024]FIG. 15 illustrates the completion of the scroll, the first frame of which is presented in FIG. 12.

[0025]FIG. 16 illustrates the first frame in a scroll of the category items on the screen presented in FIG. 15.

[0026]FIG. 17 illustrates the second frame in the scroll originally presented in FIG. 16.

[0027]FIG. 18 illustrates the third frame in the scroll originally presented in FIG. 16.

[0028]FIG. 19 illustrates the completion of the scroll originally presented in FIG. 16.

[0029]FIG. 20 illustrates a change in focus from “Fir Trees in Danger” to “Wild Domain Series,” with “Wild Domain Series” having an associated text phrase (drawable), which is displayed on the right.

[0030]FIG. 21 illustrates a change in screens, with the original screen, containing the category items “Action,” “Comedy,” “Nature,” “Drama,” and “Sports” and each category item's associated menu item have been replaced with a screen containing a background image (“—20 Years of—” and the “Wild Domain” logo) and a new list of category items with associated menu items.

[0031]FIG. 22 illustrates another change in screens with the original screen, presented in FIG. 21 replaced with a new screen containing a background image (“—20 Years of—” and the “Wild Domain” logo) and a list of menu items without contain category items.

[0032]FIG. 23 illustrates a variation of the screen originally presented in FIG. 19, with the category items being wider (limiting the number of category items that may be viewed at a single time) and represented as textual strings of varying typefaces rather than a combination of textual strings and images.

[0033]FIG. 24 illustrates a variation of the screen presented in FIG. 23 in which the category items are represented with textual strings of consistent typefaces, not varying typefaces.

[0034]FIG. 25 illustrates a variation on the screen presented in FIG. 19; here the focus-box for the category items has been moved from the upper center of the display to the upper left of the display.

[0035]FIG. 26 illustrates a new screen containing category items and menu items that have associated images and/or textual strings.

[0036]FIG. 27 illustrates the screen originally presented in FIG. 26 after the viewer used the client terminal's input device to “scroll” the menu items from “Appetizers” to “Beverages.”

[0037]FIG. 28 illustrates the screen activated by the viewer having pressed “select” while the “Beverages” menu item had focus on the screen illustrated in FIG. 27.

[0038]FIG. 29 illustrates the screen activated after the viewer pressed “A” while viewing the screen illustrated in FIG. 28.

[0039]FIG. 30 illustrates the same screen after the viewer scrolled from the “Check” to the “Menu,” giving focus to the “Create Your Own” menu item.

[0040]FIG. 31 illustrates the screen activated after the viewer “selects” the “Create Your Own” menu item from the previously active screen, and containing only a list of menu items and a blank textual string area on the right.

[0041]FIG. 32 illustrates the screen activated after the viewer “selects” the menu item “Large (13-inch)” from the previously active screen with the screen containing only a list of menu items and a textual string area that now contains text indicating the selection made by the viewer on the previously active screen.

[0042]FIG. 33 illustrates the screen activated after the viewer “selects” the thin crust menu item from the previously active screen.

[0043]FIG. 34 illustrates the display after the viewer “scrolls” the menu items list from “Glazed Ham (Ham)” to “Mushrooms (Mush)” on the screen illustrated in FIG. 33.

[0044]FIG. 35 illustrates the screen activated after the viewer “selects” the mushroom (Mush) menu items from the previously active screen.

[0045]FIG. 36 illustrates the previously active and now re-activated screen, the menu item list of pizza toppings, with the contents of the textual string on the right of the screen reflecting the viewer's selection from the previously active screen.

[0046]FIG. 37 illustrates the newly activated screen, again prompting the viewer to select a half on which the topping selected on the previously active screen, in this case “Pepperoni (Pep)”, should be placed.

[0047]FIG. 38 illustrates the previously active and now re-activated screen with the menu item list of toppings.

[0048]FIG. 39 illustrates the newly activated screen, again prompting the viewer to select a half on which the topping selected on the previously active screen, in this case “Olives (Oliv)”, should be placed.

[0049]FIG. 40 illustrates the previously active and now re-activated screen with the menu item list of toppings. Again, the contents of the textual string on the right of the screen have been modified to reflect the viewer's selection of “2^(nd) Half (2^(nd))” on the previously active screen.

[0050]FIG. 41 illustrates the screen after the viewer has scrolled the menu item list from “Olives (Oliv)” that had focus to “Mushrooms (Mush)” now having focus.

[0051]FIG. 42 illustrates the screen after the viewer has pressed “select” on the menu item “Mushrooms (Mush)”.

[0052]FIG. 43 illustrates the previously active and now reactivated screen last illustrated in FIG. 30 with the “check” being displayed to the viewer.

[0053]FIG. 44 illustrates the screen activated as a result of the viewer having pressed the “B” button, indicating a desire to “Complete the Order”, as conveyed to the viewer on the previously active screen illustrated in FIG. 43.

[0054]FIG. 45 illustrates another screen that may be activated directly as a result of the viewer pressing “B” while the screen illustrated in FIG. 43 was active.

[0055]FIG. 46 illustrates the screen activated as a result of the viewer making a selection on one of the screens illustrated in FIG. 44 or 45 or by pressing “B” on the screen illustrated in FIG. 43.

[0056]FIG. 47 illustrates the screen activated as a result of the viewer making a selection on the screen illustrated in FIG. 46.

[0057]FIG. 48 illustrates the screen activated as a result of the viewer making a selection on the screen illustrated in FIG. 47. In this screen, the viewer is prompted to enter a pin number and the first illustration of a screen that does not contain either a list of menu items or category items, but does contain a numeric field component.

[0058]FIG. 49 illustrates the screen illustrated in FIG. 48 after the viewer has entered 3 of the 4 digits in the “pin” numeric field.

[0059]FIG. 50 illustrates the screen activated as a result of the viewer pressing “B” on the screen illustrated in FIG. 43, the first illustration of a screen that contains more than one numeric field component.

[0060]FIG. 51 illustrates the screen initially presented in FIG. 50 with the viewer having partially entered a card number.

[0061]FIG. 52 illustrates the screen presented in FIG. 51 with additional data having been entered by the viewer.

[0062]FIG. 53 illustrates the screen presented in FIG. 52 with additional data having been entered by the viewer.

[0063]FIG. 54 illustrates the screen presented in FIG. 53 with additional data having been entered by the viewer; the additional data is the pin, the digits of which are hidden from view.

[0064]FIG. 55 illustrates the screen presented in FIG. 54 with the viewer having completed entry of the pin, the current digit indicator has moved back to the first digit field, letting the viewer know the entry process is complete, if after processing the entered data, some of the data is found to be incorrect or invalid, the viewer would be returned to the screen presented in FIG. 50 to reenter the data.

[0065]FIG. 56 illustrates the screen activated as a result of the viewer completing entry of the data on FIG. 50 or after FIG. 49 or after FIG. 47 or after FIG. 45, the screen indicates the viewer has selected “Pick up” and summarizes the total giving the viewer the address of where to pick up the order.

[0066]FIG. 57 illustrates the screen activated as a result of the viewer confirming the order presented in FIG. 56.

[0067]FIG. 58 illustrates the screen activated as an alternative to the screen in FIG. 56, in this case [the viewer has selected].

[0068]FIG. 59 illustrates the screen activated as a result of the viewer having confirmed the order presented in FIG. 58.

[0069]FIG. 60 illustrates the basic interface component, the cell, in this example, the cells are arranged in a grid measuring 2 columns by 2 rows.

[0070]FIG. 61 illustrates the grid of cells originally presented in FIG. 60; here the viewer has moved the focus from the “Tasty Specials” cell to the “Pizza” cell.

[0071]FIG. 62 illustrates the grid of cell originally presented in FIG. 60; here the viewer has moved the focus from the “Pizza” cell to the “Beverages” cell.

[0072]FIG. 63 illustrates another grid of cell, configured a little differently from the grid of cells illustrated in FIGS. 60-62, in this example, each cell is defined as being smaller.

[0073]FIG. 64 illustrates the grid of cells originally presented in FIG. 63; here the viewer has moved the focus from the “Tasty Specials” cell to the “Pizza” cell.

[0074]FIG. 65 illustrates the grid of cells originally presented in FIG. 63, here; the viewer has moved the focus from the “Pizza” cell to the “Beverages” cell.

[0075]FIG. 66 illustrates another grid of cells, again configured differently, in this example, the focus-box is a smaller dashed-line box with a “select” icon attached, the individual cells are constructed in a different fashion and the viewer is give instructions on how to navigate.

[0076]FIG. 67 illustrates the grid of cell originally presented in FIG. 66. Here, the viewer has moved the focus from the “Tasty Specials” cell to the “Pizza” cell.

[0077]FIG. 68 illustrates the grid of cells originally presented in FIG. 66; here the viewer has moved the focus from the “Pizza” cell to the “Appetizers” cell.

[0078]FIG. 69 illustrates another example of a grid of cells; in this case, the grid measures 1 column by 3 rows.

[0079]FIG. 70 illustrates the grid of cells originally presented in FIG. 69, here; the viewer has moved the focus from the “Tasty Specials” cell to the “Beverages” cell.

[0080]FIG. 71 illustrates another example of a grid of cells, in this case, the grid measures 2 columns by 3 rows, however, there are only 5 actual cells, this is the first example of a grid of cells that does not have a cell in every row/column pair, i.e., an empty cell.

[0081]FIG. 72 illustrates the same grid presented in FIG. 71, here, the cell in the lower right is drawn empty, as it actually would be on a television display.

[0082]FIG. 73 illustrates another basic interface component, the page; here any amount of information may be displayed, arranged in any fashion.

[0083]FIG. 74 illustrates another page in the list of pages originally presented in the screen from FIG. 73, here having previously been on page 1, the viewer has pressed the “page-forward” button and the second page, page 2, is now being displayed.

[0084]FIG. 75 illustrates the last page in the list of pages originally presented in FIG. 74.

[0085]FIG. 76 illustrates another example of a grid of cells, the grid measures 2 columns by 2 rows, the viewer is prompted with instructions to Press <select> to choose and Use <arrows> to navigate.

[0086]FIG. 77 illustrates the grid of cells originally presented in FIG. 76 with the focus having moved from “Duller Image” to “Top-Buys”.

[0087]FIG. 78 illustrates a combination of the cells interface component and the page interface component, here the viewer has several options, the viewer may change the cell that has focus, “Order” the item depicted in the cell that has focus or change page, bring up another grid of cells.

[0088]FIG. 79 illustrates page 2 in the sequence of pages initially presented in FIG. 78, here the viewer has pressed page forward while on page 1, bringing the viewer to page 2. Like the page in FIG. 78, this page also includes a grid. In this example, the grid is a 2 wide by 2 tall grid.

[0089]FIG. 80 illustrates the pages from FIG. 79; here the viewer has moved focus from the “Thunder Sunglasses” cell to “Clock with LCD Date” cell.

[0090]FIG. 81 illustrates a new screen displayed as a result of the viewer pressing “B” for “Buy” on the page illustrated in FIG. 80.

[0091]FIG. 82 illustrates a new screen displayed as a result of the viewer pressing “B” for “Complete Order” on the page illustrated in FIG. 81.

[0092]FIG. 83 illustrates a screen configured to operate as an instant pruning search interface.

[0093]FIG. 84 illustrates the instant pruning search interface originally presented in FIG. 83 after the viewer has scrolled to “Cuisine”.

[0094]FIG. 85 illustrates the instant pruning search interface from FIG. 84 after the viewer has scrolled to “Price Range”.

[0095]FIG. 86 illustrates the instant pruning search interface from FIG. 85 after the viewer has scrolled to “Region”.

[0096]FIG. 87 illustrates the instant pruning search interface from FIG. 86 after the viewer has scrolled to the menu item “Brockway”, as soon as the viewer scrolls to “Brockway”, the Current Search Criteria text area is updated to indicate the viewer wants to cull the list of results to include only those restaurants located in “Brockway”.

[0097]FIG. 88 illustrates the instant pruning search interface from FIG. 87 after the viewer has scrolled back to “Atmosphere”.

[0098]FIG. 89 illustrates the instant pruning search interface from FIG. 88 after the viewer has scrolled back to “Cuisine”.

[0099]FIG. 90 illustrates the instant pruning search interface from FIG. 89 after the viewer has scrolled to the “Italian” menu item, now the viewer has two search key values in the search for a restaurant: “Region: Brockway” and “Cuisine: Italian”.

[0100]FIG. 91 illustrates the instant pruning search interface from FIG. 90 after the viewer has scrolled back to the “Atmosphere” category item, once again, the list of search key values has been reduced even more.

[0101]FIG. 92 illustrates the instant pruning search interface from FIG. 91 after the viewer has scrolled to the “Region” category.

[0102]FIG. 93 illustrates the instant pruning search interface from FIG. 92 after the viewer has scrolled to the “Price Range” category; note the list only contains two options.

[0103]FIG. 94 illustrates the instant pruning search interface from FIG. 93 after the viewer has scrolled through the options to “$$”, the “Current Search Criteria” text area is immediately updated to indicate the viewer wishes to further limit the list of matching restaurants to the “Italian” restaurants in “Brockway” with a price range of “$$”.

[0104]FIG. 95 illustrates the instant pruning search interface of FIG. 94 after the viewer has scrolled back to the “Region” category, now, only the “Regions” with “Italian” restaurants with a price range of “$$” are displayed as options.

[0105]FIG. 96 illustrates the instant pruning search interface from FIG. 95 after the viewer has scrolled to the “Atmosphere” category item, this list is short, including only those atmospheres of restaurants in the “Brockway” area serving “Italian” cuisine having a price range of “$$”.

[0106]FIG. 97 illustrates the instant pruning search interface from FIG. 96 after the viewer has scrolled to the “Cuisine” category item, here the list only includes cuisine of restaurants in the “Brockway” area with a price range of “$$”.

[0107]FIG. 98 illustrates a new screen activated as a result of the viewer pressing the “A” button on the screen illustrated in FIG. 97, the FIG. 98 screen contains the list of matches resulting from the search requested in the instant pruning search interface illustrated in FIG. 97.

[0108]FIG. 99 illustrates the screen originally presented in FIG. 98 after the viewer has scrolled down once; here the viewer is prompted to press “select” for this particular restaurant to see more information.

[0109]FIG. 100 illustrates the screen from FIG. 99 after the viewer has scrolled down once; here the text area on the right includes an image/logo associated with the currently “focused” restaurant.

[0110]FIG. 101 illustrates the screen from FIG. 100 after the viewer has scrolled down once more, here the text area on the right includes an image associated with the currently “focused” restaurant, also, the viewer is told that there is more than one location for this restaurant and that to see the list of locations, the “select” button should be pressed.

[0111]FIG. 102 illustrates a new screen activated as a result of the viewer having pressed “select” on the screen illustrated in FIG. 101, here the viewer is shown a list of all the locations for the “Checkerboard Pasta House”.

[0112]FIG. 103 illustrates the screen originally presented in FIG. 102 after the viewer has scrolled once in the list of locations for the restaurant.

[0113]FIG. 104 illustrates the screen last presented in FIG. 97 after the viewer has returned from the list of locations for “Checkerboard Pasta House” and then again from the list of matches to the originally submitted search.

[0114]FIG. 105 illustrates the screen from FIG. 104 after the viewer has changed the “Cuisine” search criteria from “Italian” to “Chinese”.

[0115]FIG. 106 illustrates the screen from FIG. 105 after the viewer has scrolled to the “Atmosphere” category.

[0116]FIG. 107 illustrates the screen from FIG. 106 after the viewer has scrolled to the “Region” category.

[0117]FIG. 108 illustrates the screen from FIG. 107 after the viewer has changed the “Region” search criteria from “Brockway” to “Any”.

[0118]FIG. 109 illustrates a new screen activated as a result of the viewer having pressed “A” and using the search criteria (Chinese, $$), the database was searched and the restaurants listed on the screen in this figure are the matches from that search.

[0119]FIG. 110 is a flow chart detailing the major functions and procedures performed and used by the present invention.

[0120]FIG. 111 is a flow chart of the render code used with the active screen.

[0121]FIG. 112 is a flow chart of the render code for the page node.

[0122]FIG. 113 is a flow chart of the render code for the cell node.

[0123]FIG. 114 is a flow chart of the render code for the category item.

[0124]FIG. 115 is a flow chart of the render code for the menu item.

[0125]FIG. 116 is a flow chart of the render code for the numeric entry node.

[0126]FIG. 117 is a flow chart detailing how viewer input is handled.

[0127]FIG. 118 is a flow chart of the input handler code for the menu item.

[0128]FIG. 119 is a flow chart of the input handler code for the category item.

[0129]FIG. 120 is a flow chart of the input handler code for the cell.

[0130]FIG. 121 is a flow chart of the input handler code for the page.

[0131]FIG. 122 is a flow chart of the input handler code for the numeric entry.

[0132]FIG. 123 is a flow chart of the input handler code for the screen.

[0133]FIG. 124 is a flow chart of the timeout event handler.

[0134]FIG. 125 is a flow chart of the “push-screen” procedure.

[0135]FIG. 126 is a flow chart of the “pop-screen” procedure.

DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT

[0136] The invention summarized above and defined by the enumerated claims may be better understood by referring to the following detailed description, which should be read in conjunction with the accompanying figures. This detailed description of a particular preferred embodiment, set out below to enable one to build and use one particular implementation of the invention, is not intended to limit the enumerated claims, but to serve as a particular example thereof. The particular example set out below is the preferred specific implementation of the navigational TV interface.

[0137] In accordance with the preferred implementation of the present invention, the navigational interface is a software library that executes on a client terminal to generate TV displays to a consumer or viewer. The navigational interface provides an on-screen interface for the viewer to access, set, and order information, goods, and services (such as banking, ordering food items or merchandise, and selecting a restaurant) through a TV. The viewer interacts with the TV display through an input device such as a remote control device. Based on the viewer's interaction, the navigational interface modifies the TV displays and may communicate across a distribution network to provide the information, goods, and services to the viewer.

[0138] The details of the present invention are presented in several sections. The first section describes a typical environment in which the navigational interface may operate. The remaining sections describe the components of the navigational interface, each section including a general definition of the component and examples of how the component may be used.

[0139] The following terms are defined to more clearly define and describe the present invention. In addition to the following defined terms' common meanings, the following terms will also have all the characteristics set forth in the following definitions.

[0140] Application: shall mean a computer program for performing a specific task, or an executable program that provides a specific set of functions to the viewer. The application may make use of various libraries that are part of the application itself or contained elsewhere in the computer executing the application.

[0141] Display: shall mean the video-graphics the viewer sees on the TV attached to the client device.

[0142] Electronic Commerce (e-commerce): shall mean commercial activity, such as purchasing merchandise that occurs between a user or viewer and a vendor through the viewer's TV and the client device.

[0143] Hardware Server: shall mean a computer system having one or more central processing units, system memory, persistent data storage capabilities (for example, hard drives and nonvolatile random access memory (RAM)), and a particular operating system (for example, Windows 98, Windows NT, UNIX, and VMS).

[0144] Input Device: shall mean the hardware the viewer uses to control the client device, such as a remote control.

[0145] Network Provider: shall mean a company or organization, or multiple companies or organizations, responsible for the maintenance, upgrading, and general administration of the equipment in the data center, the distribution network, and, in some cases, the client terminals. The network provider may be a cable company, a local telephone company, a long-distance telephone company, a direct broadcast satellite company, or any company or organization owning or building the type of distribution network described herein.

[0146] Pop: shall mean retrieving and removing the top or most recently added element of a stack.

[0147] Push: shall mean adding a new element to a stack.

[0148] Render: shall mean the process of placing pixels from image, text, or both into the video output buffer. Once placed in the video output buffer, the image and text appear on the TV display.

[0149] Stack: shall mean a last-in first-out data structure for holding a list of elements (such as records) in which the elements are added to the stack by being “pushed” onto the stack and removed from the stack by being “popped” from the stack. The most recently added element to the stack, the top element, is the element popped from the stack. Stacks are commonly used in the data processing and computing industries.

[0150] Typical Execution Environment

[0151] In accordance with one aspect of the present invention, the environment in which the navigational interface may operate is comprised of a network provider data center 1, a distribution network 8, a client terminal 9, a TV connection cable 10, a TV display device 11, a viewer 12, and a viewer input device 13 as illustrated in FIG. 1. The distribution network interfaces between the data center and the client terminal. The navigational interface executes on the client terminal.

[0152] The data center 1 is comprised of an internal network 2, a network administration server 3, an application server 4, a database server 5, and a viewer interface development workstation 6. The data center shown in FIG. 1 represents a typical data center configured by the network provider that owns and operates the data center. The elements within the data center may be contained at a single site or distributed to multiple sites. In the latter case, the internal network includes industry-standard wide-area-network communications equipment to facilitate communications between the remotely located elements of the data center.

[0153] The network administration server 3, application server 4, database server 5, and development workstation 6 each provide specific functions in the typical data center 1. Although represented as separate elements, the specific functions of more than one element may be performed by a single hardware server. The primary function of the network administration server is to allow personnel in the data center to manage and control the distribution network 8. This functionality typically includes management and configuration of all components in the distribution network, including client terminals 9, as well as components in the data center.

[0154] The primary function of the application server 4 is to execute software modules related to any specific viewer oriented service. For example, if an e-mail service is provided to viewers 12 via the client terminal 9, the client terminal uses the distribution network 8 to communicate with the application server, which runs a specific software module whose primary responsibility is to provide the client terminal with the viewer's current e-mail. The application server can run multiple, unrelated software modules or programs for facilitating any service the network provider wishes to provide.

[0155] The primary function of the database server 5 is to execute software implementing a data storage and retrieval system. Many standard software packages for data storage and retrieval are available, including Oracle, Sybase, Interbase, Ingres, Informix, SQL Server, and the like. The services provided by the database server may be used by the network administration server 3, the application server 4, the development workstation 6, or by any of the client terminals 9 attached to the distribution network 8.

[0156] The primary function of the development workstation 6 is to provide a computer at which a viewer interface developer 7 may manually configure and control the specific behaviors of the applications developed using the navigational interface. The development workstation is optional and thus may or may not be used by the network provider. The software executing on the development workstation, which is used by the viewer interface developer, has the capability to update the configuration files used by the navigational interface.

[0157] The network administration server 3, the application server 4, and the database server 5 may directly communicate with each other via the internal network 2. In addition, the client terminal 9, through the distribution network 8, may directly communicate with these servers. The development workstation 6 may directly communicate with the servers as needed to relay changes or modifications in any application-specific configurations.

[0158] The network provider provides the distribution network 8 to the viewer 12. This network may be implemented over, for example, a standard telephone system, advanced versions of a telephone system (such as the Integrated Services Digital Network (ISDN) and asymmetric digital subscriber line (ADSL)), a cable television network, a direct broadcast satellite network, or any other network technology that is capable of, minimally, providing one-way communication, or preferably two-way communication, from the data center 1 to the client terminal 9. The navigational interface is not dependent on a specific network technology, except that the network technology must be sufficient to provide the navigational interface with its configuration parameters through one-way communication.

[0159] The client terminal 9 is connected to the distribution network 8, allowing the client terminal to, minimally, receive data from the elements of the data center 1 or, preferably, send and receive data to and from the elements of the data center. Specification of the types of hardware and operating systems that are to be used on the client terminals, which may vary for different client terminals, is typically the responsibility of the network provider. The distribution network may include, potentially, millions of client terminals.

[0160] A standard TV connection cable 10 connects the client terminal 9 to a TV display device 11, which is a standard, consumer television set. The viewer 12 communicates with the client terminal through a viewer input device 13, such as a remote control, that may be either wireless (such as an infrared remote control) or wired to the client terminal by a cable or by direct physical attachment (see FIG. 2). Additionally, the input device can be a wired or wireless computer keyboard or similar device possessing comparable functions.

[0161] The major hardware components in the client terminal 9 that are relevant to the navigational interface are shown in FIG. 2. The client terminal may contain other hardware components, depending on the specific configuration of the client terminal, including persistent storage devices (such as hard drives, nonvolatile RAM, and the like), other output devices (such as printers), and other input devices (such as card readers and microphones).

[0162] In accordance with one aspect of the present invention, the client terminal 9 is attached to the distribution network 8 at a network terminal connection 40. A network communications data receive module 32 (including a demodulator and a tuner), receives data from the distribution network, decodes it, and feeds the decoded data to a system bus 58 in the client terminal. From the system bus, the data is typically written into main RAM 54. The central processing unit (CPU) 56 interprets the data and handles it accordingly. For example, if the data is an executable version (or application) of the navigational interface, then the CPU may execute the application.

[0163] The pixels for generating a particular display of text and graphics to the viewer 12 are stored in a video output buffer within video RAM 34. One example of what the viewer might see based on the contents of the video output buffer is illustrated in FIG. 8. Typically, an application currently running in main RAM 54 writes image data across the system bus 58 into the video RAM, which makes the pixel data available to an audio/video (A/V) encode module 36. The A/V encode module produces a standard television signal accessible from a TV output connection 42 of the client terminal 9 to the TV display device 11 through the TV connection cable 10.

[0164] A network communications data transmit module (including a modulator) 38 sends data onto the distribution network 8. The data transmit module receives the data to send from the system bus 58 and sends the data back out onto the distribution network through the network terminal connection 40. Alternatively, the client terminal 9 may only be capable of receiving data.

[0165] A wireless controller input handler 44 decodes viewer input received from the wireless input device 13. The wireless input device transmits data via infrared light emitting diodes (LEDs) or aerial radio frequency (RF) into the client terminal 9 at a wireless port 46. The wireless port forwards the input data to the wireless controller input handler, where the data is prepared for transmission across the system bus 58 and into main RAM 54, where it may be interpreted by any currently running applications or by the operating system. A wired controller input handler 48 functions similarly to the wireless controller input handler, except that it decodes viewer input received from the wired input device connected directly to the client terminal at a wired port 50.

[0166] The navigational interface executes on the client terminal 9 as an application capable of receiving and handling viewer input from the input device 13. As the input is received, the navigational interface interprets the input, modifies the contents of the video RAM 34 when necessary, and transmits data from the client terminal through the data transmit module 38 to the data center 1. Also, interpretation of the viewer input might result in receipt of data through the data receive module 32 from the distribution network 8.

[0167] One possible configuration of the viewer input device 13 is shown in FIG. 3. The exact appearance of the input device 13 is not critical to the present invention. Because the components responsible for the internal operation of the input device 13 are conventional, details of the internal components, including power source and hardware for communicating with the client terminal 9 (such as an infrared transmitter or a physically connecting cable), which may be used, herein have been omitted.

[0168] The viewer 12 pushes particular keys on the input device 13 and the information associated with the pressed keys is transmitted to the client terminal 9. Typically, input devices used in conjunction with the present invention have directional or navigational indicators for moving to various areas of the TV display device 11. The directional indicators include an up key 60, a down key 62, a right key 64, and a left key 66. The input devices also typically include a selection key 68 for permitting the viewer to make a choice among possible alternatives (for example, a key marked with text such as “select,” “enter,” “choose,” and “this one”), and an information key 70 for permitting the viewer to ask for more information or help (for example, a key marked with text such as “?,” “info,” “more info,” “help”).

[0169] In addition, a plurality of optional function keys may be included on the input device 13 for providing the viewer 12 with additional features. In one embodiment of the present invention, shown in FIG. 3, the input device includes an “A” function key 72, a “B” function key 74, and a “C” function key 76. For example, the “A” function key may add a food item to an order, the “B” function key may complete the order, and the “C” function key may remove a previously selected item from the order. The functionality of these keys does not have to be indicated on the key itself. Rather, functionality may vary depending on what the viewer is attempting to accomplish, with the navigational interface communicating to the viewer through the TV display device 11 the exact functionality of each function key.

[0170] The input device 13 may also include a numeric keypad 78 for entering numbers of channels or other numbers as required by the current display on the TV display device 11. For example, the viewer 12 may be prompted to enter an account number. In addition, the input device typically includes standard TV oriented controls such as a channel selector 80 and a volume control 82. Also, the input device may include keys similar to those found on a video cassette recorder (VCR) control panel or remote control, such as a rewind key 84, a pause key 86, a stop key 88, a play key 90, and a fast forward key 92, and these keys may be identified by well known, consumer oriented icons. Finally, the input device may include keys typically found on a compact disc player or laser disc player, such as a jump forward key 94 and a jump backward key 96, and these keys may also be identified by industry standard icons.

[0171] An alternative configuration for the input device 13 is shown in FIG. 4. The selection key 68 and the information key 70 are in different locations from those of FIG. 3. Also, the directional indicator keys (the up key 60, the down key 62, the right key 64, and the left key 66) of FIG. 3 are replaced with a single, larger rocker type directional button 98. The directional button provides the same navigational capabilities as those of the indicator keys, but it also has the capability of moving at angles, that is, up and to the left 100, up and to the right 102, down and to the left 104, and down and to the right 106, as indicated by the dots positioned between the ordinary up, down, left, and right arrows on the directional button.

[0172] The Software Library

[0173] The navigational interface is a software library executing on the client terminal 9 that generates displays to the viewer 12, communicates various information and functionality available to the viewer, enables the viewer to interact with the displays through the input device 13, modifies the displays based on the viewer's input, and, when necessary, communicates across the distribution network 8. The software library containing the navigational interface may be preloaded on the client terminal by being stored in a persistent memory device inside the client terminal. Alternatively, the software library may be downloaded from the distribution network by the operating system or another application running on the client terminal. The software library is used by an application, such as an application that allows a viewer to order a pizza, to perform the functions contained within the software library. The software library provides a set of highly configurable elements that are displayed to the viewer on the TV display device 11. A particular application using the software library may not need to use all of the elements contained within the software library, and the application displays the elements it does need to use in a way specific to that application. A configuration file indicates to the software library that elements should be used and how they should operate and interact with each other. The configuration file is originally written as a plain text, readable file that is converted into a highly compressed, binary file called the Viewer Interface Configuration File (VICF). Once compressed, the software library reads the VICF and constructs the display shown to the viewer on the TV display device. Thus, the software library contains the source code for presenting an interface whose definition is contained in the VICF.

[0174] A resident application is a software module executing on the client terminal 9 responsible for providing consistent, predictable behavior for the viewer 12 regardless of the state of the set-top. For example, when the viewer presses a “channel up” button on the input device 13, the resident application is responsible for taking the viewer from the current channel to the next channel. Other basic features, such as displaying the time and/or channel number on the client terminal's top front panel LEDs, reacting to power on/off requests, volume control, mute enable/disable, direct channel tuning using the numeric keypad, channel up/down support and rendering of the channel number on top of the analog or digital video coming out of the set-top to the TV are also provided by the resident application.

[0175] The resident application is also responsible for executing various applications such as the present invention. The manner in which the viewer requests the application varies depending upon the implementation of the resident application. Some resident applications assign a channel number to each individual application. For example, an application that allows a viewer to order a pizza could be assigned to channel 105. When the viewer enters “105” on the remote control or accesses channel “105” by pressing channel up/down, the resident application loads the code to the pizza application (if the code was not already present on the set-top) and executes it. Once executed, both the resident application and the pizza application run concurrently on the client terminal 9. If the viewer presses a key assigned to the resident application, the resident application would handle such an event. If the pressed key is not assigned to the resident application, the resident application forwards the key press event to the pizza application giving it the opportunity to react. For example, if the viewer pressed the “channel up” key, the resident application would react by messaging the pizza application that it must exit. Then the resident application would change the channel from the current channel to the next channel, which might be another application or could be a broadcast TV channel. Additionally, the viewer may press the “select” key, which would require the resident application to look at the key press even and decide it is unable to handle it. The key press event would then be forwarded to the pizza application, which, depending on the state of the application, would make a selection of a specific pizza topping.

[0176] The present invention currently supports the model described above wherein a specific channel number is assigned to each application of the present invention. Alternatively, the present invention also supports a model in which applications are requested through a series of on-screen displays not related to channel numbers. For example, a display prompts the viewer to choose a specific application from a list of many applications. How the viewer accesses this list of available applications is dependent upon the implementation of the resident application. Typically, resident applications have achieved this by providing this list on a specific, well-known channel like “0”. When the viewer turns to channel 0, the list of applications is presented. When the viewer selects an application, the channel number remains 0.

[0177] The resident application may be provided by the manufacturer of the set-top, by the developer of the operating system executing on the set-top or by a third party. In some cases, the functionality of the resident application as described herein will actually be implemented in the operating system itself; in these cases, the resident application may or may not be identified as a separate element by the operating system developer.

[0178] The Node

[0179] A node is any element, such as a menu item or screen that may be displayed on the TV display device 11. The general or overarching node has a basic set of properties. All types of the general node have this common set of properties, plus any special properties unique to a specific type of node. For example, a screen 110 (e.g., see FIG. 8) is a type of node, or node element, that has all of the properties of the general node plus properties unique to screens. Other types of node include a “category item” 112 comprising a list of “category item icon nodes” 120 (e.g., see FIG. 8), a “menu item” 114 comprising a list of “menu item icon nodes” 122 that all types of the general node inherit (e.g., see FIG. 8), a “cell” 160 (e.g., see FIG. 60), a “page” 170 (e.g., see FIG. 73), and a “numeric field” 150 (e.g., see FIG. 48).

[0180] The general node has several properties. First, nodes may “have focus.” The node having focus is one the viewer 12 is currently able to manipulate using the input device 13. The node that does not have focus cannot be manipulated or selected by the viewer using the input device until it does have focus. Second, nodes may store a list of particular input device keys needed and what actions to perform when the viewer presses a specific input device key. Additionally, nodes may include device keys that trigger a custom action defined by the program. Third, only the general node that has been enhanced to become a specialized node, such as the screen 110, is displayed to the viewer on the TV display device 11.

[0181] The fourth property is that all nodes, except the screen 110, are children of another node. The screen is always owned by a component of the software library called a hierarchy manager. Fifth, nodes may contain lists of “drawables.” The “drawable” 134 (see FIG. 11) is an image, text, or both that may be shown to the viewer 12 at a specific location on the TV display device 11 when the node element has focus. Finally, nodes have the capability of responding to viewer input. If the node has focus, a key pressed on the input device 13 is inspected and the list of input device keys is searched. If a match is found, the node performs the action associated with the input device key.

[0182] Actions Supported by Nodes

[0183] “Custom” actions are supported by all types of nodes. This special action is used when the behaviors of a particular node are insufficient to handle a particular function. For example, the code required to transmit a food service order may be specialized and thus unnecessary to include in the software library because not all applications using the navigational interface are likely to use this specific functionality. Therefore, a special segment of code is included in the navigational interface application that executes when the viewer requests this action. For example, as illustrated in FIG. 43, the viewer is informed that pressing the “B” function key 74 on the input device 13 completes the order. The action associated with the “B” function key can be established as a custom action that executes the order transmit code.

[0184] Movement is accomplished by various move actions, which are supported by cells 160 and numeric fields 150. “Move-down” actions are supported by cells and numeric fields, and focus is moved from the current node to the node directly beneath the current node element. “Move-left” actions are supported by cells and focus is moved from the current cell to the cell directly to the left of the current cell. “Move-right” actions are supported by cells and focus is moved from the current cell to the cell directly to the right of the current cell. “Move-up” actions are supported by cells and numeric fields and focus is moved from the current node to the node directly above the current node.

[0185] “Page-back” and “page-forward” actions are supported by page 170. “Page-back” actions move focus from the current page to the previous page, when a previous page exists. “Page-forward” actions move focus from the current page to the next page, when a next page exists.

[0186] “Pop-screen” and “play-media,” and “push-screen” actions are supported by all node types. Focus is moved from the current screen 110 to the screen below it on the screen stack when a “pop-screen” action is initiated. “Play-media” actions indicate that the viewer has requested a video clip with audio, a video clip without audio, or an audio clip is to be played. If the clip has a video component, the video may be displayed full screen or in a limited portion of the screen. Focus is moved from the current screen to the specified new screen, pushing the new screen onto the screen stack when a “push-screen” action is initiated.

[0187] “Append-digit” and “remove-digit” actions are each supported by the numeric fields 150. “Append-digit” actions indicate that the viewer has pressed a number button on the input device. “Remove-digit” actions indicate the most recently entered digit in the numeric field be removed.

[0188] “Scroll-down” and “scroll-up” actions are supported by the menu item 114. Focus is moved from the current menu item icon node 122 to the next menu item icon node on the list when a “scroll-down” action is initiated. Focus is moved from the current menu item icon node to the previous menu item icon node in the list when a “scroll-up” action is initiated.

[0189] “Scroll-left” and “scroll-right” actions are supported by the category item 112. Focus is moved from the current category item icon node 120 to the previous category item icon node in the list when a “scroll-left” action is initiated. Focus is moved from the current category item icon node to the next category item icon node in the list when a “scroll-right” action is initiated.

[0190] The Hierarchy Manager

[0191] The hierarchy manager keeps track of the screen 110 and other nodes having focus. The hierarchy manager owns all screens, and the screen may contain all other node types. One screen is active at all times during the execution of any application using the navigational interface. The currently active screen is the only screen that is presented to the viewer 12 via the TV display device 11. If the active screen changes, the information presented to the viewer is updated to show only the contents of the newly activated screen.

[0192] The hierarchy manager also keeps track of the node having focus. At least one node will have focus at any time. Only nodes having focus may display any associated drawables 134. If the node has focus, then its parent node also has focus. If the node loses focus, then all of the node's child nodes lose focus. The screen that has focus is always the active screen.

[0193] In addition, the hierarchy manager maintains a “screen stack.” The screen stack is a list of the screens 110 through which the viewer 12 has navigated using the input device 13. When an application using the navigational interface begins to execute, an initial screen, specified in the VICF, is pushed onto the screen stack, becoming the first or top record on the screen stack. If the viewer, via the input device, wishes to view another screen, the second screen is pushed onto the screen stack. If the viewer then wishes to return to the initial screen, which is the record next to the top of the stack, the current screen is popped from the screen stack and the screen now at the top of the screen stack (the initial screen) becomes the currently displayed screen.

[0194] The Screen

[0195] The screen 110 is the most fundamental type of node provided by the software library. All other types of node are contained by the screen. Pixels displayed on the TV display device 11 by the software library are drawn by the active screen or one of its child nodes. The screen inherits all the properties of the general node, plus additional properties specific to screen nodes. First, the screen may contain a background image. The background image may be specified independently of the drawables 134 associated with the screen to facilitate displaying the background image beneath all other nodes, images, and textual strings on the screen. Second, the screen may contain a list of child nodes, including the category item 112, the menu item 114, the cell 160, the page 170, and the numeric field 150. Third, when the screen has focus, its background image, list of child nodes, and drawables are displayed. Finally, the screen has the capability of responding to “custom,” “push-screen,” “pop-screen,” and “play-media” actions.

[0196] Various combinations of nodes may be displayed on the screen 110. For example, the screen may contain a list of category item icon nodes 120 with associated menu item icon nodes 122, or menu item nodes without category item nodes. In addition, the screen could contain just numeric fields 150, or pages 170, or cells 160. Furthermore, the screen could contain a list of pages with related cells on various pages. Finally, the screen could contain only drawables 134 with no nodes being displayed at all. Drawables may be displayed with any type of node to provide additional information to the viewer 12.

[0197] Overview of Navigational Interface Application Execution

[0198] In accordance with one aspect of the present invention, the major functions performed when an application uses the navigational interface are depicted in FIG. 110. When the viewer 12 triggers operation of the navigational interface application, the operating system running on the client terminal 9 loads the binary code to enable the application to start executing 400. The software library obtains the VICF 402, for example, by receiving it from the distribution network 8 or extracting it from another part of the binary code, or by other methods dependent on the technologies implemented in the data center 1.

[0199] The activation of the initial screen 110 is determined by inspecting the VICF 404. Before making this screen active, the entire video output buffer is marked as “dirty” 406. In the preferred execution of the present invention, the video output buffer is inspected after each remote event and after each timer event to determine if any portions of the buffer are “dirty.” Those portions marked as “dirty” are completely redrawn to guarantee the viewer is presented with the freshest state of all visible nodes. Initially, the entire TV display device 11 is redrawn to contain the text and images specified by the VICF. Subsequently, only the parts of the video output buffer that are marked as “dirty” are redrawn, facilitating code and run-time optimization. The hierarchy manager then makes the initial screen active and gives the screen focus 408, and directs the active screen to display or “render” itself 410 on the TV display device (see FIG. 111).

[0200] As illustrated in FIG. 111, the render code procedure options (430-438) for the active screen 110 are shown. The render code provides the background of the current screen and other drawables 134 in addition to other nodes that may be present on the active screen. The render logic for each individual node is illustrated in FIGS. 112-116. The page's render code, FIG. 112, is performed in 430. The cell's render code, FIG. 114, is 434. The menu item's render code, FIG. 115, is performed in 436. After the screen's render code procedure options (430-438) have been performed, the video output buffer is marked as “clean” 439 and the procedure ends.

[0201] The render code procedures for the various node options are illustrated in FIGS. 112-116. The page 170 node render code is illustrated in FIG. 112, which also makes use of the cell's render code if the page contains any cells. The render code for the category item 112 contains the logic for implementing the scrolling effect for category items (FIG. 114). The render code for the category item also makes use of the menu item's render code or procedures if the category item has an associated list of menu item icon nodes. The render code for the menu item contains the logic for implementing the scrolling effect for menu item icon nodes (FIG. 115). The numeric field's render code is illustrated in FIG. 116.

[0202] The detailed functions of the handle viewer-input 418, which handles viewer 12 inputs for the present invention, are illustrated in FIG. 117. Preferably, the handle viewer-input procedure examines the screen 110 currently active to see if it contains a list of nodes. If a list of nodes is found, a designated method for handling the viewer input for each particular node (440-450) is called. If a viewer input can be fully handled by any single handler for a particular node, then the viewer input is considered handled and will no longer be considered by any node for handling.

[0203] The methods for handling the viewer input handling procedures for menu items 114, category items 112, cell grids 160, pages 170, numeric fields 150, and screens 110 for each particular node are illustrated in FIGS. 118-123. The input handler codes for the menu items, category items, grids of cells, pages, numeric fields, and screens make use of the “push-screen” procedure 452, which is illustrated in FIG. 125, and the “pop-screen” procedure 454, which is detailed in FIG. 126. The timeout event handler also makes use of the “push-screen” procedure and “pop-screen” procedure (see FIG. 124).

[0204] The operating system informs the navigational interface application 412 whether or not the viewer 12 pressed a key on the input device 13 (see FIG. 110). If the viewer did press a key, the hierarchy manager inspects the viewer input and determines whether the viewer wishes to exit the navigational interface application 414. If the viewer wants to exit, then the application ends 416. If the viewer wants to continue, then the viewer input is handled by the software library 418 (see FIG. 117). If the viewer input changes the video output buffer, then the modified portions of the video output buffer are marked as “dirty,” prompting the active screen's render methods to execute again 410, followed by another check for viewer-input 412. Thus, the main loop of the navigational interface application comprises displaying the active screen by rendering the video output buffer, getting input from the viewer, reacting to the viewer input, and rendering the video output buffer, getting input from the viewer, reacting to the viewer input, and rendering the video output buffer if it is changed by the viewer input. If no viewer input is received and a viewer input timeout occurs 420, a particular action may occur depending on the amount of time that passes with no viewer interaction 422 (see FIG. 124). After handling the timeout even, the main loop of the application re-executes 410.

[0205] The Category Item

[0206] The category item 112 type of node contains a list of category item icon nodes 120 (see FIG. 5) representing categories of items for the viewer 12 to choose from, such as drama or sports (e.g., see FIG. 8). The list of category item nodes is rendered as a series of choices in a list that the viewer may scroll to the left or right using the input device 13.

[0207] The list of category item icon nodes 120 may be rendered within any specified region on the TV display device 11. The region is referred to as a category “extent-box” 116 (see FIG. 5). The category extent-box is defined in the VICF. An area inside the category extent-box, referred to as a category “focus-box” 118, lets the viewer 12 know which of the category item nodes has focus. The category focus-box is also defined in the VICF. The category item nodes not having focus are rendered to the left and right of the category focus-box, fitting as many as possible within the category extent-box while maintaining even spacing between the category item nodes. The number of category item nodes may vary depending on the particular navigational interface application. If not enough space is available to render all of the category item nodes, then the ones that do not fit within the category extent-box are not rendered. If there are fewer category item nodes in the list than the maximum number (dependent on factors such as the size of the category extent-box and the sizes of the category item nodes) that will fit in the category extent-box, then all of the category item nodes are rendered, leaving blank the portions of the category extent-box not containing category item nodes.

[0208] The category item 112 inherits the basic properties of the general node, plus properties specific to the category item type of node. First, as described above, the list of category item icon nodes 120 is displayed to the viewer 12 within the category extent-box 116, with the category item node having focus displayed within the category focus-box 118. Second, the category item nodes may be represented by an image (e.g., see FIG. 9), by text only, or by a combination of image and text (e.g., see FIG. 8). The image and text are specified independently of the drawables 134 associated with the category item nodes. Third, the category item nodes may contain the menu item 114 with a list of specific menu item icon nodes 122 for the viewer to choose from, such as a particular movie (e.g., see FIG. 8). The menu item nodes contained by a category item node are visible only if that particular category item node has focus. Fourth, when a category item node has focus, its image and text are rendered inside the category focus-box, and any associated drawables and menu item nodes are displayed. Fifth, the category item is capable of handling “scroll-left,” “scroll-right,” “play-media,” “push-screen,” and “pop-screen” actions.

[0209] Finally, the list of category item icon nodes 120 may be defined as “circular” (the default) or “non-circular.” If the list of category item nodes is circular, then a category item node that scrolls to the left or right edge of the category extent-box 116 is rendered on the opposite side of the category extent-box if the viewer 12 continues scrolling in the same direction. If the list of category item nodes is non-circular, then the viewer may scroll to the left or right only until the last category item node in the list of category item nodes is rendered inside the category focus-box 118.

[0210] In one embodiment of the present invention, as illustrated in FIG. 5, five category item icon nodes 120 are currently visible. Although the category item nodes shown are square in shape, the nodes may be any shape depending on the contents of the images and text rendered to represent the category item nodes. If the list of category item nodes contains more than five category item nodes, then the additional nodes are not visible because of the size of the nodes and the category extent-box 116. Stationary visual cues 124 inform the viewer 12 that the viewer may scroll the list of category item nodes to the left and right. The menu item nodes 122 displayed are associated with the category item node currently having focus within the category focus-box 118. The category focus-box 118 remains stationary during scrolling. Thus, as the viewer scrolls left or right, the category item nodes all move in the same direction until another category item node is centered within the category focus-box. While the category item nodes are scrolling, if a particular category item node reaches the edge of the category extent-box, the entire category item node is marked as non-visible and will not be rendered to the viewer until it scrolls back inside the category extent-box.

[0211] If there are fewer category item icon nodes 120 than are required to fill the category extent-box 116, then the category item nodes are rendered as evenly as possible (or balanced) around the category focus-box 118. For example, if three or five category item nodes are displayed, then the category focus-box will be located in the center of the category extent-box with an even number of category item nodes displayed on either side of the category focus-box (e.g., see FIGS. 8 and 23). However, if four category item nodes are displayed, then in one embodiment, the category focus-box may be centered on the second category item node with one of the remaining nodes being located to the left and two nodes to the right of the category focus-box (e.g., see FIG. 83).

[0212] If the list of category item icon nodes 120 is circular and there are fewer category item nodes than are required to fill the category extent-box 116, then, during scrolling, the category item node reaching one extreme side of the category extent-box is moved to the other side as the viewer 12 continues to scroll. For example, when scrolling left, the leftmost category item node would move to the rightmost side of the category extent-box. In circular mode, the list of category item nodes is seen from the viewer's perspective as having no beginning or end. The list continuously loops through all choices from beginning to end and then back to the beginning again.

[0213] If the list of category item icon nodes 120 is non-circular, then the category item nodes are initially rendered with the first category item node inside the category focus-box 118 and all other category item nodes to the right of the category focus-box. The viewer 12 cannot scroll left because there are no category item nodes to the left of the first category item node in the list. The viewer may scroll right and continue scrolling right until the last category item node in the list is rendered inside the category focus-box. At this point, the viewer may no longer scroll right. In non-circular mode, the viewer perceives the list of category item nodes as having a distinct beginning and end.

[0214] The Menu Item

[0215] The menu item 114 type of node may present any number of services to the viewer 12, including playing an audio/video clip, transferring focus from the current screen 110 to a different screen, ordering a product, and changing a viewer preference. This list of menu item icon nodes 122 is rendered as a series of choices in a list that the viewer may scroll up or down using the input device 13.

[0216] The list of menu item icon nodes 122 may be rendered within any specified region on the TV display device 11. The region is referred to as a menu extent-box 126 (see FIG. 5). The menu extent-box is defined in the VICF. An area inside the menu extent-box, referred to as a menu focus-box 128, lets the viewer 12 know which of the menu item nodes has focus. The menu focus-box is also defined in the VICF. The menu item nodes not having focus are rendered above and below the menu focus-box, fitting as many as possible within the menu extent-box. If not enough space is available to render all of the menu item nodes, then the ones that do not fit within the menu extent-box are not rendered. If there are fewer menu item nodes in the list than the maximum number that will fit in the menu extent-box, then all of the menu item nodes are rendered, leaving blank the portions of the menu extent-box that do not contain menu item nodes.

[0217] The menu item 114 type of node inherits basic properties of the general node, plus properties specific to the menu item type of node. First, as described above, the list of menu item icon nodes 122 is displayed to the viewer 12 within the menu extent-box 126, with the menu item node having focus displayed within the menu focus-box 128. Second, the menu item nodes may be represented by an image, by text (e.g., see FIG. 8), or by a combination of image and text (e.g., see FIG. 10). The image and text are specified independently of drawables 134 associated with the menu item nodes. Third, when a menu item node has focus, its image and text are rendered inside the menu focus-box, and any associated drawables are displayed. Fourth, the menu item is capable of handling actions to “scroll-up,” “scroll-down,” “push-screen,” and “play media.” Finally, the list of menu item nodes may be defined as circular (the default) or non-circular. Circular and non-circular nodes for the menu item function similarly to those for the category item 112, the difference being scrolling up and down as opposed to left and right.

[0218] In one embodiment of the present invention, illustrated in FIG. 5, five menu item icon nodes 122 are currently visible. Although the menu item nodes shown are rectangular in shape, the nodes may be any shape depending on the contents of the images and text rendered to represent the menu item nodes. If the list of menu item nodes contains more than five menu item nodes, then the additional nodes are not visible because of the size of the nodes and the menu extent-box 126. Stationary visual cues 130 inform the viewer 12 that the list of menu item nodes may be scrolled up and down. The menu item nodes displayed are associated with the category item icon node 120 currently having focus within the category focus-box 118. The category item node having focus is the parent or owner of the list of menu item nodes. The screen 110 may contain a list of menu item nodes directly without containing the list of category item nodes (e.g., see FIG. 22).

[0219] The menu focus-box 128 remains stationary during scrolling. Thus, as the viewer scrolls up or down, the menu item icon nodes 122 all move in the same direction until another menu item node is centered within the menu focus-box. While the menu item nodes are scrolling, if a particular menu item node reaches the edge of the menu extent-box, the entire menu item node is marked as non-visible and is not rendered to the viewer 12 until it scrolls back inside the menu extent-box.

[0220] The Numeric Field

[0221] The numeric field 150 is a type of node for allowing the viewer 12 to enter a number that may be interpreted by the navigational interface application. The screen 110 may contain a list of numeric fields, enabling the viewer to enter multiple numbers on a single screen. Only one numeric field has focus at a time, and the numeric field having focus is the one the viewer is currently editing.

[0222] The numeric field 150 inherits the basic properties of the general node, plus properties specific to numeric fields. First, the numeric field may contain a certain number of digits as specified in the VICF. Second, the numeric field may be positioned anywhere on the screen 110. Third, the numeric field is displayed as a series of boxes, each box corresponding to one digit. Items such as spacing between the boxes, the color of the boxes, and the size of the boxes are configurable in the VICF. Preferably, the box of the digit currently being entered is displayed in a different color to indicate to the viewer 12 that this box is for holding the current digit.

[0223] Fourth, the numeric field 150 allows digits to be entered from left to right or from the right. When entered from the left to right, the new digits are appended to the end of the already entered digits and the current digit indicator moves to the right one digit at a time. When entered from the right, all the digits move one digit to the left each time an additional digit is entered and the current digit indicator always stays over the right-most digit. Entering digits from the right is useful, for example, when entering numeric dollar values that include cents.

[0224] Fifth, the numeric field 150 has a “pin” mode in which the digits the viewer enters are not displayed on the TV display device 11. Instead, the digits entered are represented by symbols such as an asterisk (*) or a circle to maintain security of the number entered. Sixth, if the numeric field does not have focus, then all the digit boxes are displayed in the same color. If the numeric field has focus, thereby allowing the entering of digits, the box for the current digit is displayed in a different color as specified in the VICF for highlighting the box. Seventh, the numeric field is capable of handling the “append-digit,” “play-media,” “pop-screen,” “remove-digit,” “push-screen,” “move-up,” and “move-down” actions.

[0225] Finally, if the screen 110 contains a list of numeric fields 150, focus may change between each numeric field by automatically transferring to the next numeric field when the viewer 12 finishes entering the last digit in the current numeric field. Focus is automatically transferred back to the first numeric field in the list or a “custom” action is performed when the viewer enters the last digit of the last numeric field. If a “custom” action is defined, the present invention executes specific code stored in the software library when the last digit is entered. Another way focus may change is by the viewer pressing the up key 60 and down key 62 on the input device 13 to manually move focus from one numeric field to another without completely filling in all digits in a particular numeric field.

[0226] Example Configuration of Category Items and Menu Items

[0227] The category item icon nodes 120 and menu item icon nodes 122 may be placed in various locations on the TV display device 11 (see FIGS. 5 and 6). Also, the sizes of the category item and menu item nodes may vary (see FIGS. 6 and 7). In addition, the category item and menu item node having focus may be indicated in various ways. For example, in FIG. 7, the menu focus-box 118 is represented as a darkened rectangle beneath and larger than the menu item node it contains, and the category focus-box 118 is represented as a pair of half-ovals above and below the category tem node having focus.

[0228] In one embodiment of the present invention, the display on the TV display device 11 might appear to the viewer 12 as shown in FIG. 8. In this representation, the category item icon nodes 120 represent various television show types or genres the viewer may wish to view, such as movies, situation comedies, sporting event, documentaries, and the like. The menu item icon nodes 122 represent shows corresponding to the various show genres of the category item nodes. In FIG. 8, the category item node labeled “Drama” currently has focus. Menu item nodes associated with the “drama” category item node are displayed, and of these, the menu item node labeled “Grapes for Wrath” currently has focus. Also, in the figure is an image representing a selection button 132 labeled “select” that is similar in appearance to the selection key 68 on the input device 13 (see FIGS. 3 and 4). The selection button informs the viewer that pressing the selection key 68 on the input device will cause the menu item node currently having focus to be selected. The category item nodes in this figure are represented as combinations of images and text, while the menu item nodes are represented with just text. The category item nodes may also be represented with images and no text (see FIG. 9), and the menu item nodes may be represented as combinations of images and text (see FIG. 10).

[0229] Drawables 134 are illustrated in FIG. 11. In this figure, the menu extent-box is narrow and positioned on the left half of the TV display device 11 to make room for the drawable. The drawable shown is associated with the menu item icon node 122 having focus, which is labeled “Grapes for Wrath.” The drawable provides additional information about the menu item icon node currently having focus. In addition, the selection button 1332 is in a different location than it was in FIG. 8, demonstrating that the selection button can be located in various positions on the TV display device.

[0230] The displays appearing when the viewer 12 wants to scroll up in the list of menu item icon nodes 122 from the node labeled “Grapes for Wrath” to “Mr. Holland's Requiem” are illustrated in FIGS. 12-15. In one embodiment of the present invention, the viewer presses the up key 60 on the input device 13 to scroll up. However, the keys used for scrolling a list in a particular direction are configurable and may be changed in the VICF. The menu focus-box 128 remains stationary. Thus, the list appears to move in a downward direction as the menu item node above the node currently having focus moves into the menu focus-box.

[0231] After the viewer 12 presses the up key 60, the menu item icon nodes 122 begin to move down, as shown in FIG. 12. Because the menu item node labeled “Grapes for Wrath” no longer has focus, its drawable 134 disappears. In the preferred embodiment, the selection button 132 disappears because during the scroll, there is no menu item node having focus that can be selected. The selection button reappears when the scroll completes. Also, in the preferred embodiment, the visual cue 130 above the list of menu item nodes appears in a different color to inform the viewer that an upward scroll is occurring.

[0232] As the menu item icon nodes 122 move further down during the scroll, the bottom menu item node labeled “Philip and the Glass” disappears because it no longer fits within the menu extent-box 126, as shown in FIG. 13. Also, a previously non-visible menu item node labeled “Cheese and Crackers” now appears at the top of the list of the menu item nodes. As the menu item nodes continue to move down, the menu item node labeled “Mr. Holland's Requiem” moves further into the menu focus-box 128 (see FIG. 14), until scrolling completes, at which point this menu item node becomes centered in the menu focus-box, as shown in FIG. 15. This node's drawable 134 is then rendered to the display. Also, the selection button 132 reappears. Typically, the entire scroll lasts for less than approximately three seconds depending on the performance of the client terminal 9 and the distribution network 8.

[0233] The displays appearing when the viewer 12 wants to scroll left in the list of category item icon nodes 120 from the node labeled “Drama” to “Nature” are illustrated in FIGS. 16-19. In one embodiment of the present invention, the viewer presses the left key 66 on the input device 13 to scroll to the left. However, the keys used for scrolling a list in a particular direction are configurable and may be changed in the VICF. The category focus-box 118 remains stationary. Thus, the list appears to move to the right as the category item node to the left of the node currently having focus moves into the category focus-box.

[0234] After the viewer 12 presses the left key 66, the category item icon nodes 120 begin to move to the right, as shown in FIG. 16. Because the category item node labeled “Drama” no longer has focus, its associated list of menu item icon nodes 122, as well as the drawable 134 that was associated with the menu item node that had focus, have disappeared. In the preferred embodiment, the selection button 132 disappears, but reappears when the scroll completes.

[0235] As the category item icon nodes 120 move further to the right during the scroll, the rightmost category item node labeled “Action” disappears because it no longer fits within the category extent-box 116 at either the left or right end, as shown in FIG. 17. As the category item nodes continue to move to the right, the category item node labeled “Nature” moves further into the category focus-box 118, as shown in FIG. 18. In this figure, the category item node labeled “Action” reappears on the left side of the list of category item nodes, demonstrating the circular scrolling capabilities. After scrolling is complete, the category item node labeled “Nature” has focus, as shown in FIG. 19. This node's associated list of menu item icon nodes 122 is displayed, as well as the drawable 134 associated with the menu item node having focus, labeled “Fir Trees in Danger.” Also, the selection button 132 reappears.

[0236] If the viewer 12 scrolls up in the list of menu item icon nodes 122 to the node labeled “Wild Domain Series,” the drawable 134 for that menu item node appears (see FIG. 20). The drawables may have different sizes and contain images, text, or a combination of images and text (see FIGS. 19 and 20).

[0237] The viewer 12, by pressing the selection key 68 on the input device 13, may select the menu item icon node 122 having focus in FIG. 20, which is the node labeled “Wild Domain Series.” This node is configured to map the selection action to the “push-screen” action, causing the screen 110 in FIG. 20 to lose focus and the screen in FIG. 21 to be pushed onto the screen stack, thereby gaining focus. The screen in FIG. 21 contains a list of category item icon nodes 120. The category item node labeled “Science” has focus, and its associated list of menu item nodes is displayed with the menu item node labeled “Computers & Technology” having focus. The screen also contains its own drawable 134 at the top of the display. If the viewer again selects the menu item node having focus, labeled “Computers & Technology,” the screen shown in FIG. 22 gains focus. This figure illustrates that screens may contain menu item nodes without category item nodes, the menu item nodes may contain more than one line of text, and screens may contain more than on drawable.

[0238] The category item nodes 120 may be represented as text phrases in various fonts and sizes, or as text phrases with each text phrase having the same font and size (see FIGS. 23 and 24). Also, the size of the category focus-box 118 and the number of category item nodes may vary (see FIG. 23), and the category focus-box may be placed in various locations within the category extent-box 116, rather than always being centered (see FIG. 25).

[0239] The displays the viewer 12 might see if the screen 110, category item icon nodes 120, and menu item icon nodes 122 are configured to enable the viewer to purchase food items are shown in FIGS. 26-59. In the initial screen, shown in FIG. 26, the category item node having focus is the “Menu” node and the menu item node labeled “Appetizers” has focus. If the viewer scrolls up in the list of menu item nodes, focus changes from the node labeled “Appetizers” to “Beverages,” and the drawable 134 associated with the node “Beverages” displays (see FIG. 27).

[0240] If the viewer 12 selects the “Beverages” menu item icon node 122, the screen 110 shown in FIG. 28 gains focus. This screen contains a list of menu item nodes for selecting various beverages and a drawable 134 at the top of the screen. The menu item node labeled “2 liter—Koka Kola Dekaf—$2.75” has focus. The screen also contains an “A” image 136, informing the viewer that the viewer may add the menu item node currently having focus to the viewer's order by pressing the “A” function key 72 on the input device 13. The selection button 132 image and the selection key 68 discussed previously may be used to select and add items, but, preferably, the “A” function key is used to aid the viewer in distinguishing between navigating between screens and ordering items.

[0241] After the viewer 12 presses the “A” function key 72 to select and add to the order the beverage represented by the menu item icon node 122 having focus, the original screen shown in FIG. 26 reappears, as shown in FIG. 29, but the category item icon node 120 having focus is now the “Check” node rather than the “Menu” node. The menu item node associated with the “Check” category item node is the beverage the viewer selected, illustrating the capability of the navigational interface to dynamically create and modify nodes at run-time based on viewer input. Examples presented above have demonstrated node element configuration based on the VICF, which is typically how nodes are created and configured. However, all node types may be dynamically configured in the present invention. In addition, a “B” image 138 and a “C” image 140 inform the viewer that the viewer may complete the order by pressing the “B” function key 74 on the input device 13 and remove an item from the order by pressing the “C” function key 76.

[0242] If the viewer 12 scrolls from the “Check” category item icon node 120 to the “Menu” category item node, the associated menu item icon node 122 labeled “Create Your Own” gains focus (see FIG. 30). If the viewer selects the “Create Your Own” menu item node, this node has the selection key 68 mapped to the “push-screen” action, thereby pushing the screen 110 shown in FIG. 31 onto the screen stack for display to the viewer to select a pizza crust size.

[0243] Once the viewer 12 selects the crust size, a “crust type” screen 110 is pushed, as shown in FIG. 32. The crust size the viewer selected is dynamically displayed within the drawable 134 associated with the screen. The viewer is prompted to choose a pizza crust type. Once the viewer chooses the crust type, a “topping” screen is pushed, as shown in FIG. 33, with the selection the viewer made for the crust type displayed in the drawable. The viewer is prompted to choose a pizza topping, and the menu item icon node 122 labeled “Glazed Ham (Ham)” has focus. The viewer may choose a topping or, as indicated by the “A” image 136, press the “A” function key 72 on the input device 13 when the viewer is ready to add the pizza to the viewer's order.

[0244] If the viewer 12 scrolls down the list of menu item icon nodes 122 and selects the “Mushrooms (Mush)” node (see FIG. 34), a “which half” screen 110 displays, as shown in FIG. 35. The viewer is prompted to choose the part of the pizza on which the selected topping should be placed. The “A” image 136 for adding the pizza to the viewer's order does not appear in this display because the viewer has not yet provided all required information for adding a topping.

[0245] After the viewer 12 chooses the menu item icon node 122 labeled “Whole (W)” for the placement of the topping, the “pop-screen” action executes, returning the viewer to the previous “topping” screen 110, as shown in FIG. 36. The “A” image 136, giving the viewer the option of adding the pizza to the viewer's order, reappears. After the viewer selects the “Pepperoni (Pep)” menu item node, the “which half” screen displays again (see FIG. 37). If the viewer selects the “1^(st) half (1^(st))” menu item node, the “topping” screen displays (see FIG. 38). After the viewer selects the “Olives (Oliv)” menu item node, the “which half” screen appears again (see FIG. 39), followed by the topping screen (see FIG. 40) after the viewer selects the “2^(nd) Half (2^(nd))” menu item node in FIG. 39.

[0246] If the viewer 12 scrolls back to the “Mushrooms (Mush)” menu item icon node 122, which is a choice previously selected, the screen 110 appears as in FIG. 41. When the viewer scrolls back to a topping that the viewer has previously selected, a drawable 134 appears informing the viewer that pressing the selection key 68 on the input device 13 removes the topping. This illustrates the dual function of the selection key—the selection key will be add a topping if it has not already been added, or the selection key will remove a topping if it has already been chosen. After the viewer presses the selection key, the information regarding mushrooms is removed from the drawable containing the description of the pizza, and the note to the viewer about pressing the selection key to remove the topping disappears, as shown in FIG. 42.

[0247] The “A” image 136 in FIG. 42 informs the viewer 12 that the viewer may press the “A” function key 72 on the input device 13 to add the pizza to the order. After doing so, the screen 110 with focus, the “topping” screen, is popped back to the initial screen shown in FIG. 26, as illustrated in FIG. 43. The “Check” category item icon node 120 has focus, and the list of menu item icon nodes 122 the viewer selected is updated to include the pizza. The “B” image 138 and the “C” image 140 indicate that the viewer has the option of pressing the “B” function key 74 to complete the order, or the “C” function key 76 to remove from the viewer's order one of the items from the list of food items.

[0248] The displays the viewer 12 might see when completing the food order transaction via the client terminal 9 are shown in FIGS. 44-59. The process of completing an order is configurable and may change depending on environmental and regulatory capabilities and concerns. This configuration information is preferably contained in the VICF and is interpreted at runtime by the present invention, which uses this information to determine the screens and options that should be presented to the viewer.

[0249] After the viewer 12 presses the “A” function key 74 on the input device 13 to complete the order, an optional screen prompts the viewer to indicate whether the viewer will use a coupon with the order (see FIG. 44). The viewer is then prompted to choose between having the pizza delivered or picking up the pizza (see FIG. 45). Next, the viewer is prompted to choose a method of payment from a list of payment options (see FIG. 46). The list of payment options may vary depending on the environment.

[0250] If the viewer 12 selects the “Credit/Debit Card” menu item icon node 122, the next screen 110 displays a list of card payment options for the viewer (see FIG. 48). If the viewer chooses the “GTR Credit Union Debit Card” menu item node, the following screen shown in FIG. 48, prompts the viewer to enter a personal identification number (PIN) in the numeric field 150. The single numeric field contains four boxes for four digits, the first box having focus. The numeric field is configured to operate in the “pin” mode, substituting display of the digits with symbols for security. After the viewer enters three of the four digits of the pin, the fourth box has focus, indicating the fourth box may be edited (see FIG. 49).

[0251] An alternative screen 110 for entering card information is shown in FIG. 50. The screen contains a list of numeric fields 150 for card number, expiration date, and pin. When the viewer enters the last digit in the card number numeric field, focus automatically transfers to the expiration numeric field. Various stages of filling in the numeric fields are shown in FIGS. 51-55.

[0252] If the viewer 12 chooses “Pickup” from the screen 110 presented in FIG. 45, a “pickup” screen, as shown in FIG. 56, may appear immediately after the viewer selects “Pickup,” or after the viewer specifies the method of payment using, for example, any of the screens shown in FIGS. 46-55. The viewer may select the “B” image 138 in FIG. 56 to complete the order (by pressing the “B” function key 74 on the input device 13), or the “C” image 140 to return to the main menu (by pressing the “C” function key 76 on the input device), which is the same screen as shown in FIG. 43. If the viewer chooses to complete the order, then a “confirmation” screen displays, containing a confirmation number that may be used to cross-reference the viewer's order at various stages of fulfillment (see FIG. 57).

[0253] If the viewer 12 chooses “Delivery” from the screen 110 presented in FIG. 45, a “Delivery” screen, as shown in FIG. 58, may appear immediately after the viewer selects “Delivery,” or after the viewer specifies the method of payment using, for example, any of the screens shown in FIGS. 46-55. The viewer 12 may enter the address specified on the screen for delivery if the input device 13 has a keyboard, but, preferably, the address is obtained by the navigational interface application from the database server 5 in the data center 1, rather than being contained in the VICF or manually entered by the viewer at runtime. If the viewer selects the “B” image 138 to complete the order, then the “confirmation” screen displays (see FIG. 59).

[0254] The Cell

[0255] The cell 160 (see FIG. 60) is a type of node for presenting a single, specific choice to the viewer 12 by placing an image or text or both on the screen 110 within a fixed location that contains the cells. The screen or page 170 (see FIG. 73) may contain a list of cells displayed in a grid or table-like arrangement. The viewer navigates between the cells using the up key 60, down key 62, right key 64, and left key 66 on the input device 13. The cell having focus is displayed with a special border, such as the one shown in FIG. 60, to communicate to the viewer which cell is the current cell. The list of cells may be rendered within a grid defined to contain a specific number of columns and rows. Cells and pages may be used in conjunction with or as an alternative to the category item 112 and the menu item 114.

[0256] The cell 160 inherits the basic properties of the general node, as well as properties specific to cells. First, the cell may be represented by image, text, or both, and the image and text are specified independently of the drawables 134 associated with the cell. Second, when the cell has focus, a special border appears around the cell and any associated drawables are displayed. Finally, the cell has the capability of handling “move-left,” “move-right,” “move-up,” “move-down,” “play-media,” “pop-screen,” and “push-screen” actions.

[0257] Various arrangements and configurations of cells 160 are illustrated in FIGS. 60-72. One example of cell configuration, shown in FIG. 60, is the screen 110 containing four cells arranged in a two-column by two-row grid. The cell labeled “Tasty Specials” has focus. If the viewer 12 presses the right key 64 on the input device 13, focus moves to the cell labeled “Pizza” (see FIG. 61). If the viewer presses the right key again, focus moves to the “Beverages” cell (see FIG. 62).

[0258] An alternative way to convey to the viewer 12 which cell 160 has focus is shown in FIG. 63. In this figure, only a portion of the “Tasty Specials” cell has a special border, indicating that this cell has focus. Displays after the viewer moves focus to the “Pizza” cell and then to the “Beverages” cell are shown in FIGS. 64 and 65. FIGS. 63 and 64 illustrate that the “Tasty Specials” cell and the “Pizza” cell have related drawables that appear when either cell gains focus.

[0259] An alternative way for arranging and displaying cells 160 on the screen 110 is shown in FIG. 66. In this figure, the cells are not displayed with distinct borders. The indicator for communicating that a cell has focus is a rectangle surrounding the text label with a selection button 132 in one corner that informs the viewer 12 that the cell may be chosen by pressing the selection key 68 on the input device 13. The screen also contains a navigational cue 190in the lower right-hand corner that informs the viewer that the viewer may navigate around the cells by pressing the up key 60, down key 62, right key 64, and left key 66 on the input device. A display after the viewer moves focus from the “Tasty Specials” cell to the “Pizza” cell and then the “Appetizers” cell are shown in FIGS. 67 and 68.

[0260] In another cell 160 arrangement shown in FIG. 69, the screen 110 contains a one-column by three-row grid of cells. In this configuration, the viewer 12 may navigate the cells only by pressing the up key 60 and down key 62 on the input device 13, as indicated in the navigation cue 190 at the bottom of the screen. The display in FIG. 70 results after the viewer presses the down key to move focus from the “Tasty Specials” cell to the “Beverages” cell.

[0261] Another configuration, shown in FIG. 71, shows a screen 110 containing a two-column by three-row grid of cells 160. The cell located in row 3, column 2 is not defined and is shown in the figure with an “empty cell” identifier for illustration purposes only. The “empty cell” identifier would normally not be presented to the viewer 12, as shown in FIG. 72.

[0262] The Page

[0263] The page 170 is a type of node for presenting a full display of text and images. The screen 110 may contain multiple pages in the form of a list of pages with one page having focus and being displayed at any one time. The viewer 12 may navigate between the pages using keys configured on the input device 13 for moving forward (page forward) and backward (page back) by page. For example, the rewind key 84 and fast forward key 92 on the input device could also be configured to provide page forward and page back capabilities.

[0264] The page 170 inherits the basic properties of the general node, plus properties specific to pages. First, the page may be represented by an image, text, or both, and the image and text are specified independently of the drawables 134 associated with the page. Second, when the page has focus, the page's associated images, text, and drawables are displayed. Third, the page may contain a list of cells 160 that are displayed when the page has focus. Finally, the page has the capability to handle “page forward,” “page back,” “play media,” “push screen,” and “pop screen” actions.

[0265] Various arrangements and configurations of screens 110, pages 170, and cells 160 are demonstrated in FIGS. 73-82. One sample configuration, shown in FIG. 73, is the screen containing a list of pages. Four pages are associated with the current screen, and this information is conveyed to the viewer 12 by the “Page 1 of 4” text in the lower right hand corner of the display. Also, a page forward image 172 in the lower right hand corner indicates the viewer may use the page forward or fast forward key 92 on the input device 13 to move focus from the current page (page 1) to the next page (page 2).

[0266] If the viewer 12 presses the page forward key on the input device 13, the second page 170 appears, as shown in FIG. 74. The viewer is informed that the current page is page 2, and the page forward image 172 and a page back image 174 in the lower right hand corner indicate the viewer may ether page forward to page 3 or page back to page 1. After the viewer presses the page forward key two more time to move focus to the last page (page 4) in the list of pages, the page forward image disappears, leaving only the page back image to indicate to the viewer that the viewer has reached the end of the list of pages (see FIG. 75).

[0267] A sample configuration for ordering merchandise through e-commerce is illustrated in FIGS. 76-82. A two-column by two-row grid of cells 160 for individual retailers is shown in FIG. 76. The navigation cue 190 reminds the viewer 12 how to move between the cells, and the selection button 132 indicates how to choose a particular retailer. For example, if the viewer presses the down key 62 on the input device 13, focus moves from the “Duller Image” cell to the “Top Buys” cell (see FIG. 77).

[0268] The screen 110 “pushed” after the viewer 12 selects the “Top Buys” cell 160 is shown in FIG. 78. The screen contains four pages 170. The first page, as shown in FIG. 78, contains a two-column by two-row grid of cells. The navigation cue 190 reminds the viewer how to move between the cells. The page forward image 172 informs the viewer that the viewer may move to the next page, and the “B” image 138 informs the viewer that the viewer may order the item in the cell having focus, which, in this figure, is the “Philip and the Glass” cell. The “A” image 136 informs the viewer that the viewer may listen to sample audio from the compact disc shown in the cell having focus.

[0269] If the viewer 12 presses the page forward key 92 on the input device 13, focus moves to page 2, as shown in FIG. 79. Page 2 also contains a two-column by two-row grid of cells 160. The page back image 174, as well as the page forward image 172, display to inform the viewer that the viewer may either move backward to page 1 or forward to page 3. If the viewer presses the down key 62 on the input device, focus moves from the “Thunder Sunglasses” cell to the “Clock with LCD Date” cell (see FIG. 80).

[0270] If the viewer 12 presses the “B” function key 74 to order the item in the cell 160 having focus, a larger image of the item the viewer wants to order is displayed, as shown in FIG. 81, along with a textual description, the “B” image 138 to indicate the viewer may complete the order, and the “C” image 140 to indicate the viewer may cancel the purchase. The screen 110 contains drawables 134 and the background image, but this particular screen does not contain any nodes. If the viewer decides to complete the order by pressing the “B” function key 74 on the input device 13, then the viewer may see a confirmation screen, such as the one shown in FIG. 82.

[0271] The Instant Pruning Search Interface

[0272] The instant pruning search interface searches for data meeting multiple search key criteria. The pruning search interface uses the screen 110, category item icon nodes 120, and menu item icon nodes 122 to provide the viewer 12 with search keys and specific search values for each search key. Each search key is associated with a specific category item node. The specific search values for each search key are contained in the list of menu item nodes associated with the category item nodes.

[0273] When a particular search key is given a specific value to search for, the range of specific values for all other search keys is pruned so that the viewer 12 does not choose a particular combination of values for the search keys that produces an empty list of matches. Based on the search value set for the first search key, the list of possible values for the second search key may be pruned to yield matches. For example, the viewer might want to find a restaurant in a particular area. The viewer may have two search keys available, such as atmosphere and cuisine. If the viewer sets a search value of “casual” for the atmosphere search key, then a search value such as “steak” may not appear as a choice for the cuisine search key if no restaurants are available in the area having a casual atmosphere and also serving steak. The default value for the search keys is “Any” or “All.” If the viewer does not change the default value for a particular search key, then that search key will not limit the list of matches. In addition, the screen 110 configured as a search interface typically contains dynamic text within a current search criteria text box 180 (e.g., see FIG. 83) showing the viewer the current values set for each search key.

[0274] In one embodiment of the present invention, the pruning search interface is demonstrated in the context of selecting a restaurant, as shown in FIGS. 83-109. The screen 110, configured as a pruning search interface, may contain, for example, four search keys, which are the same as the category item nodes 120, as shown in FIG. 83. The “Atmosphere” search key has focus, and its associated search values are the menu item icon nodes 122. All search keys initially have the default search value of “Any.” The “A” image 136 indicates that the viewer 12 may see the list of all matches based on the current search criteria by pressing the “A” function key 72 on the input device 13. The viewer may scroll the search keys in the same way the category item nodes may be scrolled (see FIGS. 84-86).

[0275] If the viewer 12 scrolls to the “Region” search key 120 and selects the “Brockway” search value 122, the current search criteria text box 180 is modified to show selection of the new search value (see FIG. 87). If the viewer then scrolls from the “Region” search key to the “Atmosphere” search key, the list of search values is reduced or pruned from the original list shown in FIG. 83 to display only types of atmospheres available for the region of “Brockway” (see FIG. 88).

[0276] After the viewer 12 further scrolls from the “Atmosphere” search key 120 to the “Cuisine” search key, the list of search values 122 is pruned from the original list shown in FIG. 84 to display only types of cuisine available for the region of “Brockway” (see FIG. 89). If the viewer scrolls from the “Any” search value to the “Italian” search value and selects the “Italian” search value, the current search criteria text box 180 is updated to reflect setting the new search value (see FIG. 90).

[0277] The viewer 12 may then scroll from the “Cuisine” search key 120 to the “Atmosphere” search key, resulting in the list of search values 122 being further pruned to reflect types of atmospheres available for Italian restaurants in the region of “Brockway” (see FIG. 91). Scrolling from the “Atmosphere” search key to the “Region” search key, results in the search values being pruned to display only regions having Italian restaurants (see FIG. 92).

[0278] If the viewer 12 scrolls from the “Region” search key 120 to the “Price Range” search key, the list of search values 122 is pruned to display only price ranges for Italian restaurants in the region of “Brockway” (see FIG. 93). If the viewer selects the “$$” search value for the “Price Range” search key, this selection is indicated in the current search criteria text box 180 (see FIG. 94).

[0279] After the viewer 12 scrolls from the “Price Range” search key 120 to the “Region” search key, the list of search values 122 for the “Region” search key is further pruned to contain only regions having Italian restaurants with a price range of “$$” (see FIG. 95). Similarly, scrolling from the “Region” search key to the “Atmosphere” search key results in the list of search values for the “Atmosphere” search key including only those types of atmospheres for Italian restaurants with a price range of “$$” in the region of “Brockway” (see FIG. 96). After the viewer scrolls from the “Atmosphere” search key to the “Cuisine” search key, the list of search values for the “Cuisine” search key is pruned to include only types of cuisine for restaurants in the region of “Brockway” having a price range of “$$” (see FIG. 97).

[0280] The “A” image 136 indicates that the viewer 12 may view the results of a search using the search values specified in the current search criteria text box 180 by pressing the “A” function key 72 on the input device 13. If the viewer does view the search results, the screen 110 displayed contains a list of menu item icon nodes 122 for matching restaurants, as shown in FIG. 98. The menu item node labeled “Gianni's Pub and Eatery” has focus, and it also has a drawable 134 containing additional information about the restaurant. The “C” image 140 indicates that the viewer may return to the pruning search interface screen to modify search criteria selected by pressing the “C” function key 76 on the input device.

[0281] If the viewer 12 scrolls down from the menu item icon node 122 for “Gianni's Pub and Eatery” to the node for “Luigi's Pizza,” the selection button 132 appears to indicate that additional information is available for “Luigi's Pizza” by pressing the selection key 68 on the input device 13 (see FIG. 99). If the viewer chooses instead to scroll down from the menu item node for “Luigi's Pizza” to the node for “Enzo's of Brockway,” the associated drawable 134 appears and contains both text and an image of the restaurant's logo (see FIG. 100). If the viewer continues to scroll down from the menu item node for “Enzo's of Brockway” to the node for “Checkerboard Pasta House” (see FIG. 101), and then selects the “Checkerboard Pasta House” menu item node, the screen 110 shown in FIG. 102 provides more information about the restaurant selected, including a list of each of the restaurant's locations, hours, and phone numbers. The “C” image 140 indicates that the viewer may return to the list of matching restaurants by pressing the “C” function key 76 on the input device.

[0282] The viewer 12 may want to see information for the “Brockway” location (see FIG. 103), and then return to the pruning search interface screen 110. To return, the viewer “pops” screens back by pressing the “C” function key 76 on the input device 13 to return to the list of matching restaurants (as shown in FIG. 101), and then pressing the “C” function key again to return to the pruning search interface screen, as shown in FIG. 104. The current search values are still specified in the current search criteria text box 180. If the viewer scrolls up from the “Italian” search value 122 to the “Chinese” search value and selects the “Chinese” search value, the change in type of cuisine is reflected in the current search criteria text box (see FIG. 105).

[0283] After the viewer 12 scrolls from the “Cuisine” search key 120 to the “Atmosphere” search key, the list of search values 122 for “Atmosphere” search key is pruned to display only types of atmosphere for Chinese restaurants having a price range of “$$” in the region of “Brockway” (see FIG. 106). Scrolling from the “Atmosphere” search key to the “Region” search key causes the list of search values for the “Region” search key to be pruned to display only regions having Chinese restaurants with a price range of “$$” (see FIG. 107).

[0284] If the viewer 12 scrolls up from the “Brockway” search value 122 to the “Any” search value and selects the “Any” search value for the “Region” search key 120, the change in search value selected is reflected in the current search criteria text box 180, as shown in FIG. 108. The viewer may see search results by pressing the “A” function key 72 on the input device 13 (see FIG. 109).

[0285] The present invention may, of course, be carried out in ways other than those set forth without parting from the spirit and essential characteristics of the invention. The present embodiments are to be considered in all respects as illustrative and not restrictive, and all changes coming within the meaning and equivalency range of the following claims are intended to be embraced. 

What is claimed is:
 1. A method for providing a viewer capability of purchasing food items via a client terminal and a television screen comprising the steps of: displaying a food application on the television screen in response to the viewer tuning the client terminal to a predetermined television channel, wherein the food application includes at least one food product category item; selecting a food product category item in response to the viewer navigating the at least one food product category item into a stationary category focus box and pressing a select button on a remote control; and ordering at least one selected food product category item in response to the viewer pressing an order button via the remote control, wherein an order signal including the at least one selected food product category item is provided from the client terminal to a data center via a distribution network for further processing.
 2. The method of claim 1, further comprising the steps of: in the data center, providing the order signal including the at least one ordered food product category item via the distribution network to a food provider along with a delivery address associated with the ordering client terminal.
 3. The method of claim 1, further comprising the steps of: focusing on a food product category item in response to the viewer navigating the food product category item into the stationary category focus box via the remote control; subsequently, displaying at least one food product menu item associated with the focused food product category item; focusing on a food product menu item in response to the viewer navigating the food product menu item into a stationary menu focus box via the remote control; selecting the focused food product menu item in response to the viewer pressing the select button on the remote control; and ordering the selected food product menu item in response to the viewer pressing the order button on the remote control.
 4. The method of claim 3, further comprising the steps of: displaying a drawable in response to the focused food product menu item, wherein the drawable contains information associated with the focused food product menu item.
 5. The method of claim 3, further comprising the steps of: returning to the at least one food product category item display in response to the viewer pressing a return button on the remote control.
 6. The method of claim 3, wherein the selected food product menu item further comprises the steps of: displaying a plurality of pruning screens associated with the selected food product menu item.
 7. The method of claim 6, further comprising the steps of: returning to the at least one food product menu item display associated with the focused food product category item in response to the viewer pressing a return button on the remote control.
 8. The method of claim 1, further comprising the steps of: displaying a total price screen in response to the viewer pressing a complete order button on the remote control, wherein the client terminal stores a price associated with each of the at least one ordered food product category item.
 9. The method of claim 2, further comprising the steps of: displaying a payment option screen including a plurality of payment options in response to the viewer pressing a complete order button on the remote control; and selecting a payment option in response to the viewer focusing on a desired payment option and pressing a select button on the remote control.
 10. The method of claim 9, further comprising the steps of: entering numeric information associated with the desired payment option via numeric buttons on the remote control; and sending the numeric information along with the order signal, wherein the data center provides the numeric information to the food provider indicating payment terms.
 11. A distribution network for transmitting and receiving a plurality of signals among a data center, a plurality of client terminals, and at least one food provider, the plurality of client terminals each connected to a television screen, the television screen for displaying the plurality of signals including video and audio signals, the plurality of client terminals each including a navigational interface, the navigational interface for purchasing food products via a client terminal and a television, the client terminal comprising: a tuner for tuning to a predetermined television channel displaying a navigational interface screen on the television screen, the navigational interface comprising: a food application screen for displaying on the television screen, wherein the food application screen includes at least one food product category cell; a stationary focus box for focusing on one food product category cell; navigational cues for indicating a plurality of buttons on a remote control, wherein when a viewer presses a navigational button, the at least one food product category cell rotates into the stationary focus box in accordance with the navigational button pressed; a select cue for indicating a select button on the remote control for selecting the focused food product category cell; and an order cue for indicating an order button on the remote control, wherein when the viewer presses the order button on the remote control, the client terminal sends an order signal associated with the selected food product category cell to the data center for further processing.
 12. The client terminal of claim 11, wherein in response to the client terminal sending the order signal, the data center provides the order signal associated with the selected food product category cell including information associated with the ordering client terminal to a responsible food provider.
 13. The client terminal of claim 11, wherein the navigational interface further comprises: at least one menu item cell associated with the focused food product category cell; a stationary menu focus box for focusing on one menu item cell, wherein the navigational buttons on the remote control rotate the at least one menu item cell into and out of the stationary menu focus box, and wherein the select button on the remote control selects the focused menu item cell, and wherein the order button on the remote control sends an order signal associated with the selected menu item cell to the data center for further processing.
 14. The client terminal of claim 13, the navigational interface further comprising: a complete order cue for indicating a complete order on the remote control, wherein in response to the viewer pressing the complete order button, a complete order signal includes a plurality of order signals associated with at least one focused menu item cell.
 15. The client terminal of claim 13, wherein the navigational interface further comprises: a displayed drawable in response to the focused menu item cell, wherein the drawable contains information associated with the focused menu item cell.
 16. The client terminal of claim 12, the navigational interface further comprising: a total price screen displayed on the television screen, wherein a total price associated with the completed order is displayed in response to the viewer pressing a complete order button on the remote control.
 17. The client terminal of claim 16, the navigational interface further comprising: a payment method screen including a plurality of payment options in response to the pressed complete order button, wherein a payment method is selected in response to the viewer navigating a desired payment method into a stationary payment focus box and selecting the focused payment method.
 18. The client terminal of claim 17, the navigational interface further comprising: a numeric information screen associated with the desired payment method, wherein the viewer enters numeric information onto the numeric information screen via the remote control.
 19. The client terminal of claim 18, wherein the information associated with the ordering client terminal is a delivery address, the desired payment method, and any entered numeric information.
 20. The client terminal of claim 11, the navigational interface further comprising: a time-out program for timing out the food application screen and returning to the previously displayed television channel after a predetermined amount of time of viewer inactivity. 